Content distribution networks (CDNs) generally function by retrieving and distributing electronic content from content providers and, more specifically, from origin servers hosting the content to be distributed. Once retrieved, the content can be cached at various locations within the CDN, generally referred to as edge servers, to facilitate efficient distribution of the content.
Content available over a CDN is produced by content providers, which may include, without limitation, television networks, movie studios, video-sharing platforms, and countless other types of content providers. Generally, the content provider produces the content (which may include encoding the content) and makes the content available for distribution over the CDN. Content may be divided into discrete segments, commonly referred to as “transport segments” or “media segments” and, if so, producing the content may further include generating a manifest file that sequentially lists the segments of a given piece of content along with their respective network locations.
When a device is used to access content from a CDN, a request is transmitted to a domain name server (DNS) that recognizes the content is to be distributed over the CDN and redirects the request to the CDN. The CDN then identifies a CDN edge server from which the content should be served to the device. In certain instances, the edge server is selected based on geographic proximity to the DNS resolver from which the request was received, but other considerations, such as load balancing and the status of CDN equipment among others, may be taken into account when selecting an edge server from which the content is to be provided to the device. If the content is not currently located at an edge server, the CDN may copy the content to the edge server from another cache of the CDN or from the origin server. The edge server then provides the requested content to the device.
In the case of segmented content, the CDN responds to a request for the content by providing the corresponding manifest file to the device. The device, through an application such as a media player running on the device, then makes sequential requests for the segments of the content based on the order and location of data stored within the manifest file. Similar to the original request, the individual segment requests are each forwarded to the CDN and handled by serving the requested segment from the appropriate edge server. In the context of live-streamed content, a content provider may continuously generate new segments and update the corresponding manifest file to include entries for the new segments. As a result, the device must periodically request an updated version of the manifest file in order to request and receive the new segments.
It is with these observations in mind, among others, that aspects of the present disclosure were conceived.